1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.glib.gsequence;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 
34 extern (C):
35 
36 alias _GSequence GSequence;
37 alias _GSequenceNode GSequenceIter;
38 alias int function (_GSequenceNode*, _GSequenceNode*, void*) GSequenceIterCompareFunc;
39 
40 struct _GSequence;
41 
42 
43 struct _GSequenceNode;
44 
45 
46 version(Derelict_Link_Static)
47 {
48     extern( C ) nothrow 
49     {
50 	    GSequence* g_sequence_new(GDestroyNotify data_destroy);
51         void g_sequence_free(GSequence* seq);
52         gint g_sequence_get_length(GSequence* seq);
53         void g_sequence_foreach(GSequence* seq, GFunc func, gpointer user_data);
54         void g_sequence_foreach_range(GSequenceIter* begin, GSequenceIter* end, GFunc func, gpointer user_data);
55         void g_sequence_sort(GSequence* seq, GCompareDataFunc cmp_func, gpointer cmp_data);
56         void g_sequence_sort_iter(GSequence* seq, GSequenceIterCompareFunc cmp_func, gpointer cmp_data);
57         GSequenceIter* g_sequence_get_begin_iter(GSequence* seq);
58         GSequenceIter* g_sequence_get_end_iter(GSequence* seq);
59         GSequenceIter* g_sequence_get_iter_at_pos(GSequence* seq, gint pos);
60         GSequenceIter* g_sequence_append(GSequence* seq, gpointer data);
61         GSequenceIter* g_sequence_prepend(GSequence* seq, gpointer data);
62         GSequenceIter* g_sequence_insert_before(GSequenceIter* iter, gpointer data);
63         void g_sequence_move(GSequenceIter* src, GSequenceIter* dest);
64         void g_sequence_swap(GSequenceIter* a, GSequenceIter* b);
65         GSequenceIter* g_sequence_insert_sorted(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data);
66         GSequenceIter* g_sequence_insert_sorted_iter(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);
67         void g_sequence_sort_changed(GSequenceIter* iter, GCompareDataFunc cmp_func, gpointer cmp_data);
68         void g_sequence_sort_changed_iter(GSequenceIter* iter, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);
69         void g_sequence_remove(GSequenceIter* iter);
70         void g_sequence_remove_range(GSequenceIter* begin, GSequenceIter* end);
71         void g_sequence_move_range(GSequenceIter* dest, GSequenceIter* begin, GSequenceIter* end);
72         GSequenceIter* g_sequence_search(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data);
73         GSequenceIter* g_sequence_search_iter(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);
74         GSequenceIter* g_sequence_lookup(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data);
75         GSequenceIter* g_sequence_lookup_iter(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);
76         gpointer g_sequence_get(GSequenceIter* iter);
77         void g_sequence_set(GSequenceIter* iter, gpointer data);
78         gboolean g_sequence_iter_is_begin(GSequenceIter* iter);
79         gboolean g_sequence_iter_is_end(GSequenceIter* iter);
80         GSequenceIter* g_sequence_iter_next(GSequenceIter* iter);
81         GSequenceIter* g_sequence_iter_prev(GSequenceIter* iter);
82         gint g_sequence_iter_get_position(GSequenceIter* iter);
83         GSequenceIter* g_sequence_iter_move(GSequenceIter* iter, gint delta);
84         GSequence* g_sequence_iter_get_sequence(GSequenceIter* iter);
85         gint g_sequence_iter_compare(GSequenceIter* a, GSequenceIter* b);
86         GSequenceIter* g_sequence_range_get_midpoint(GSequenceIter* begin, GSequenceIter* end);
87     }
88 }
89 else
90 {
91     extern( C ) nothrow 
92     {
93 	    alias da_g_sequence_new = GSequence* function(GDestroyNotify data_destroy);																					
94         alias da_g_sequence_free = void function(GSequence* seq);																									
95         alias da_g_sequence_get_length = gint function(GSequence* seq);																								
96         alias da_g_sequence_foreach = void function(GSequence* seq, GFunc func, gpointer user_data);																
97         alias da_g_sequence_foreach_range = void function(GSequenceIter* begin, GSequenceIter* end, GFunc func, gpointer user_data);								
98         alias da_g_sequence_sort = void function(GSequence* seq, GCompareDataFunc cmp_func, gpointer cmp_data);														
99         alias da_g_sequence_sort_iter = void function(GSequence* seq, GSequenceIterCompareFunc cmp_func, gpointer cmp_data);										
100         alias da_g_sequence_get_begin_iter = GSequenceIter* function(GSequence* seq);																				
101         alias da_g_sequence_get_end_iter = GSequenceIter* function(GSequence* seq);																					
102         alias da_g_sequence_get_iter_at_pos = GSequenceIter* function(GSequence* seq, gint pos);																	
103         alias da_g_sequence_append = GSequenceIter* function(GSequence* seq, gpointer data);																		
104         alias da_g_sequence_prepend = GSequenceIter* function(GSequence* seq, gpointer data);																		
105         alias da_g_sequence_insert_before = GSequenceIter* function(GSequenceIter* iter, gpointer data);															
106         alias da_g_sequence_move = void function(GSequenceIter* src, GSequenceIter* dest);																			
107         alias da_g_sequence_swap = void function(GSequenceIter* a, GSequenceIter* b);																				
108         alias da_g_sequence_insert_sorted = GSequenceIter* function(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data);					
109         alias da_g_sequence_insert_sorted_iter = GSequenceIter* function(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);		
110         alias da_g_sequence_sort_changed = void function(GSequenceIter* iter, GCompareDataFunc cmp_func, gpointer cmp_data);										
111         alias da_g_sequence_sort_changed_iter = void function(GSequenceIter* iter, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);							
112         alias da_g_sequence_remove = void function(GSequenceIter* iter);																							
113         alias da_g_sequence_remove_range = void function(GSequenceIter* begin, GSequenceIter* end);																	
114         alias da_g_sequence_move_range = void function(GSequenceIter* dest, GSequenceIter* begin, GSequenceIter* end);												
115         alias da_g_sequence_search = GSequenceIter* function(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data);							
116         alias da_g_sequence_search_iter = GSequenceIter* function(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);				
117         alias da_g_sequence_lookup = GSequenceIter* function(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data);							
118         alias da_g_sequence_lookup_iter = GSequenceIter* function(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data);				
119         alias da_g_sequence_get = gpointer function(GSequenceIter* iter);																							
120         alias da_g_sequence_set = void function(GSequenceIter* iter, gpointer data);																				
121         alias da_g_sequence_iter_is_begin = gboolean function(GSequenceIter* iter);																					
122         alias da_g_sequence_iter_is_end = gboolean function(GSequenceIter* iter);																					
123         alias da_g_sequence_iter_next = GSequenceIter* function(GSequenceIter* iter);																				
124         alias da_g_sequence_iter_prev = GSequenceIter* function(GSequenceIter* iter);																				
125         alias da_g_sequence_iter_get_position = gint function(GSequenceIter* iter);																					
126         alias da_g_sequence_iter_move = GSequenceIter* function(GSequenceIter* iter, gint delta);																	
127         alias da_g_sequence_iter_get_sequence = GSequence* function(GSequenceIter* iter);																			
128         alias da_g_sequence_iter_compare = gint function(GSequenceIter* a, GSequenceIter* b);																		
129         alias da_g_sequence_range_get_midpoint = GSequenceIter* function(GSequenceIter* begin, GSequenceIter* end);		
130     }
131 
132     __gshared
133     {
134         da_g_sequence_new g_sequence_new; 
135         da_g_sequence_free g_sequence_free; 
136         da_g_sequence_get_length g_sequence_get_length; 
137         da_g_sequence_foreach g_sequence_foreach; 
138         da_g_sequence_foreach_range g_sequence_foreach_range; 
139         da_g_sequence_sort g_sequence_sort; 
140         da_g_sequence_sort_iter g_sequence_sort_iter; 
141         da_g_sequence_get_begin_iter g_sequence_get_begin_iter; 
142         da_g_sequence_get_end_iter g_sequence_get_end_iter; 
143         da_g_sequence_get_iter_at_pos g_sequence_get_iter_at_pos; 
144         da_g_sequence_append g_sequence_append; 
145         da_g_sequence_prepend g_sequence_prepend; 
146         da_g_sequence_insert_before g_sequence_insert_before; 
147         da_g_sequence_move g_sequence_move; 
148         da_g_sequence_swap g_sequence_swap; 
149         da_g_sequence_insert_sorted g_sequence_insert_sorted; 
150         da_g_sequence_insert_sorted_iter g_sequence_insert_sorted_iter; 
151         da_g_sequence_sort_changed g_sequence_sort_changed; 
152         da_g_sequence_sort_changed_iter g_sequence_sort_changed_iter; 
153         da_g_sequence_remove g_sequence_remove; 
154         da_g_sequence_remove_range g_sequence_remove_range; 
155         da_g_sequence_move_range g_sequence_move_range; 
156         da_g_sequence_search g_sequence_search; 
157         da_g_sequence_search_iter g_sequence_search_iter; 
158         da_g_sequence_lookup g_sequence_lookup; 
159         da_g_sequence_lookup_iter g_sequence_lookup_iter; 
160         da_g_sequence_get g_sequence_get; 
161         da_g_sequence_set g_sequence_set; 
162         da_g_sequence_iter_is_begin g_sequence_iter_is_begin; 
163         da_g_sequence_iter_is_end g_sequence_iter_is_end; 
164         da_g_sequence_iter_next g_sequence_iter_next; 
165         da_g_sequence_iter_prev g_sequence_iter_prev; 
166         da_g_sequence_iter_get_position g_sequence_iter_get_position; 
167         da_g_sequence_iter_move g_sequence_iter_move; 
168         da_g_sequence_iter_get_sequence g_sequence_iter_get_sequence; 
169         da_g_sequence_iter_compare g_sequence_iter_compare; 
170         da_g_sequence_range_get_midpoint g_sequence_range_get_midpoint; 	
171     }
172 }